Improving Software Assurance Using Lightweight Static Analysis

نویسنده

  • Rajeev Gopalakrishna
چکیده

Gopalakrishna Rajeev. Ph.D., Purdue University, May, 2006. Improving Software Assurance Using Lightweight Static Analysis. Major Professors: Prof. Eugene H. Spafford and Prof. Jan Vitek. Software assurance is of paramount importance given the increasing impact of software on our lives. This dissertation describes research that explores two techniques to improve software assurance: a runtime approach in the context of host-based misuse detection systems (MDSs) and a compile-time approach to detect unknown software defects. Host-based MDSs attempt to identify attacks by discovering program behaviors that deviate from expected patterns. We focus on automated and conservative misuse detection techniques. We present a static analysis algorithm for constructing a flowand context-sensitive model of a program that allows for efficient real-time detection. Contextsensitivity is essential to reduce the number of impossible control-flow paths accepted by a MDS because such paths provide opportunities for attackers to evade detection. Our inlined automaton model presents an acceptable tradeoff between accuracy and performance in our experiments. Static and dynamic approaches have been proposed over the years to detect security vulnerabilities. These approaches assume that the signature of a defect is known a priori. A greater challenge is detecting defects whose signatures are not known a priori— unknown software defects. We propose a general approach for detection of unknown defects. Software defects are discovered by applying data-mining techniques to pinpoint deviations from common program behavior in the source code and using statistical techniques to assign significance to each such deviation. We discuss the implementation of our tool, FaultMiner, and illustrate the power of the approach by inferring two types of security properties on four widely-used programs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Improving Static Analysis Performance Using Rule-Filtering Technique

Static analysis is an efficient approach for software assurance. It is indicated that the most effective usage of it is to perform analysis in an interactive way through software development process, which has a high performance requirement. This paper concentrates on rule-based static analysis tools and proposes an optimized rule-checking algorithm to improve their performance. Our technique f...

متن کامل

Characterization of Software Quality Assurance Methods: Five Methods for Verification of Learning Systems

While learning systems offer great promise in reducing cost and improving quality of control applications [12, 11], they also raise thorny issues in terms of the mismatch between the quality standards that these systems must achieve [10] and the available technology. There is widespread agreement [7, 8, 9, 12, 11] that current verification technology does not apply to online learning systems, w...

متن کامل

Characterizing Software Quality Assurance Methods: Impact on the Verification of Learning Systems

While learning systems offer great promise in reducing cost and improving quality of control applications [12, 11], they also raise thorny issues in terms of the mismatch between the quality standards that these systems must achieve [10] and the available technology. There is widespread agreement [7, 8, 9, 12, 11] that current verification technology does not apply to online learning (i.e., ada...

متن کامل

Impact of Code Complexity On Software Analysis

The Software Assurance Metrics and Tool Evaluation (SAMATE) team studied thousands of warnings from static analyzers. Tools have difficulty distinguishing between the absence of a weakness and the presence of a weakness that is buried in otherwise-irrelevant code elements. This paper presents classes of these code elements, which we call “code complexities.” They have been present in software a...

متن کامل

Agile Security Requirements Engineering

Agile processes have been deemed unsuitable for security sensitive software development as the rigors of assurance are seen to conflict with the lightweight and informal nature of agile processes. However, such apparently conflicting demands may be reconciled by introducing the new notion of abuser stories in the requirements domain. These extend the wellestablished concept of user stories to a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006